Dans le cadre du BTS SIO SISR — 2ème année, cet atelier de professionnalisation consiste à auditer un domaine Active Directory à l'aide de l'outil PingCastle (Netwrix). Le contexte simulé est celui d'un prestataire IT mandaté par un client qui s'inquiète de la sécurité de son infrastructure Windows.
PingCastle génère un score de risque de 0 à 100 — plus le score est bas, meilleure est la sécurité du domaine. Il analyse quatre indicateurs : Stale Object (objets obsolètes), Privileged Accounts (comptes à privilèges), Trusts (relations de confiance inter-domaines) et Anomalies (configurations risquées).
L'objectif est d'identifier les failles majeures, de les comprendre, de les corriger, et de produire ce compte-rendu professionnel documentant la démarche complète.
Au premier audit, le domaine blaize.lmd présente un score de risque de 45/100. Ce score indique une sécurité mitigée avec plusieurs axes d'amélioration prioritaires.
11 règles correspondantes · Comptes utilisateurs et ordinateurs obsolètes ou mal suivis, pouvant servir de porte d'entrée à un attaquant.
4 règles correspondantes · Comptes administrateurs insuffisamment protégés, exposés aux attaques de type Pass-the-Hash et usurpation d'identité.
0 règle · Aucune relation de confiance dangereuse entre domaines. Ce point est parfaitement sécurisé.
13 règles correspondantes · Configurations risquées ou incorrectes (protocoles anciens, mots de passe faibles, NetBIOS actif…).
Deux comptes administrateurs du domaine ne sont pas membres du groupe « Protected Users ». Sans cette protection, ils utilisent des protocoles d'authentification faibles (NTLM, Kerberos avec algorithmes vulnérables), leurs mots de passe peuvent être mis en cache sur les postes clients, et ils sont exposés aux attaques Pass-the-Hash et Pass-the-Ticket. En cas de compromission, l'attaquant peut se déplacer librement dans le réseau.
Ajout des comptes Adminbis, Administrateur et Client2 dans le groupe Protected Users. Une fois membres, les comptes ne peuvent plus utiliser NTLM ou Kerberos avec des algorithmes vulnérables, et les mots de passe ne sont plus mis en cache sur les postes clients.
- Ouvrir AD Users and Computers → Rechercher le groupe Protected Users
- Onglet Membres → ajouter Adminbis, Administrateur et Client2
- Vérifier que les membres apparaissent bien dans la liste
Le mot de passe administrateur local est identique sur tous les postes ou rarement modifié. Si un attaquant récupère ce mot de passe sur un seul poste, il peut l'utiliser sur tout le parc — les attaques Pass-the-Hash deviennent triviales.
LAPS génère automatiquement un mot de passe unique par machine, stocké dans Active Directory, avec rotation automatique. La GPO a été configurée avec le répertoire de sauvegarde sur Active Directory. Un onglet LAPS apparaît dans les propriétés de chaque objet ordinateur.
- Créer une GPO LAPS → activer « Configuration du répertoire de sauvegarde » → Active Directory
- Configurer la complexité et la durée de vie des mots de passe
- Vérifier via PowerShell :
Get-LapsADPassword -Identity CLIENT1-W11 -AsPlainText
La politique acceptait des mots de passe de moins de 8 caractères sans exigences de complexité. Ces mots de passe sont facilement cassables par force brute ou via des dictionnaires. Le CERT-FR et l'ANSSI recommandent un minimum de 12 caractères avec complexité.
Modification de la Default Domain Policy : longueur minimale à 12 caractères, complexité activée, durée de vie maximale à 60 jours, historique mémorisant les 24 anciens mots de passe.
- GPO Editor → Default Domain Policy → Stratégie de mot de passe
- Définir : Longueur min. = 12, Complexité = Activé, Durée max = 60 jours, Historique = 24
- Appliquer et
gpupdate /force
NTLMv1 et LM sont des protocoles obsolètes. Leurs hash peuvent être interceptés (Man-in-the-Middle), relayés (NTLM relay) ou cassés par force brute. Ils rendent le réseau vulnérable aux attaques d'usurpation d'identité et d'escalade de privilèges.
Forcer l'utilisation de NTLMv2 via la Default Domain Controllers Policy : paramètre « Sécurité réseau : niveau d'authentification LAN Manager » défini sur « Envoyer uniquement une réponse NTLMv2. Refuser LM et NTLM ».
- GPO Editor → Default Domain Controllers Policy → Options de sécurité
- Paramètre « Sécurité réseau : niveau d'authentification LAN Manager »
- Définir : Envoyer uniquement NTLMv2. Refuser LM et NTLM
Les comptes administrateurs n'avaient pas le drapeau « Ce compte est sensible et ne peut pas être délégué » activé. Un service ou une machine peut alors emprunter leur identité via la délégation Kerberos, permettant à un attaquant de créer des comptes, modifier des droits ou accéder à des données confidentielles.
Dans les propriétés de chaque compte administrateur, onglet Compte, activation de la case « Ce compte est sensible et ne peut pas être délégué ». La commande Get-ADGroupMember -Identity "Administrators" a permis d'identifier tous les comptes concernés.
Get-ADGroupMember -Identity "Administrators"pour lister les admins- Propriétés du compte → Onglet Compte → cocher « Ce compte est sensible et ne peut pas être délégué »
- Répéter pour tous les comptes Domain Admins et Enterprise Admins
Le groupe Schema Admins permet de modifier le schéma Active Directory — modification qui impacte tout le domaine et est irréversible. Laisser des comptes dans ce groupe en permanence augmente considérablement le risque d'incident ou de sabotage.
Suppression du compte Administrator du groupe Schema Admins pour que le groupe soit vide en situation normale. L'ajout temporaire d'un compte ne se fait que lors d'une modification planifiée du schéma, avec restitution immédiate des droits.
- AD Users and Computers → Rechercher Schema Admins
- Onglet Membres → sélectionner Administrator → Remove
- Vérifier que la liste des membres est vide
NetBIOS est un ancien protocole non chiffré qui facilite les attaques de spoofing LLMNR/NetBIOS-NS et le relayage NTLM. Un attaquant positionné sur le réseau peut intercepter des requêtes et récupérer des identifiants. Ce protocole n'est plus nécessaire dans un environnement AD moderne.
Script PowerShell déployé par GPO de démarrage : Get-WmiObject -Class Win32-NetworkAdapterConfiguration | Where-Object { $_.IPEnabled } | ForEach-Object { $_.SetTcpipNetbios(2) }. Désactivation également possible manuellement via Propriétés Ethernet → IPv4 → Avancé → WINS.
- Créer
disable_netbios.ps1avec la commande WMI ci-dessus - Créer une GPO → Configuration ordinateur → Scripts (Démarrage) → ajouter le .ps1 via chemin réseau partagé
- Lier la GPO aux Domain Controllers et à l'UO PC
Les extensions .js, .vbs, .wsf s'ouvrent par défaut dans leur moteur d'exécution (WScript, CScript). Un script malveillant reçu par phishing ou téléchargé peut s'exécuter automatiquement, facilitant les infections par ransomware ou le vol de données.
Script PowerShell déployé par GPO qui modifie la clé de registre HKCU:\...\FileExts\$ext\UserChoice pour chaque extension ciblée (.js, .jse, .vbs, .vbe, .vb, .wsh, .wsf), en définissant Progid = Applications\notepad.exe.
- Créer le script PowerShell ciblant les 7 extensions à risque
- Déployer via GPO → Préférences de registre ou Script de démarrage (HKCU)
- Vérification : double-clic sur un
.js→ doit ouvrir le Bloc-notes
Après correction des 8 failles, le score de risque est passé de 45/100 à 20/100, soit une amélioration de 25 points.
| Indicateur | Score Avant | Score Après | Évolution | Principales corrections |
|---|---|---|---|---|
| Stale Object | 31 / 100 | 16 / 100 | ▼ -15 pts | Suppression comptes inactifs · NTLMv2 forcé |
| Privileged Accounts | 40 / 100 | 10 / 100 | ▼ -30 pts | Protected Users · Non-déléguable · Schema Admins vidé |
| Trusts | 0 / 100 | 0 / 100 | = stable | Aucune relation de confiance — score parfait |
| Anomalies | 45 / 100 | 20 / 100 | ▼ -25 pts | LAPS · Politique MDP · NetBIOS · Scripts |
| Score Global | 45 / 100 | 20 / 100 | ▼ -25 pts | 8 failles corrigées |